// JavaScript Document
// cancella gli spazi prima e dopo una stringa
String.prototype.trim = function () 
{
    return this.replace(/^\s+|\s+$/, "");
}
/*
 *  Raccolta di metodi di uso comune e generale in tutto il sito 
 */
var Common = 
{
    // registrazione di eventi compatibile con tutti i browser
    addEvent : function (node, evType, funct) 
    {
        if (node.addEventListener) {
            node.addEventListener(evType, funct, false);
            //alert("test ff " + this);
            return true;
        }
        else if (node.attachEvent) {
            //alert("test ie " + this);
            return node.attachEvent("on" + evType, funct);
        }
        else {
            //alert("test no " + this);
            return false;
        }
    },
    /*
    * Mostra o nasconde un elemento
    */
    toggle : function (element) 
    {
        var s = null;
        if (window.getComputedStyle) 
        {
            element.style.display = (window.getComputedStyle(element, null).display == "none") ? "block" : "none";
        }
        else if (element.currentStyle) 
        {
            alert("IE");
            element.style.display = (element.currentStyle.display == "none") ? "block" : "none";
        }
        return false;
    },
    /*
    * Trova la posizione assoluta di un oggetto nella pagina
    */
    findPos : function (obj) 
    {
        var curleft = curtop = 0;
        if (obj.offsetParent) {
            do {
                curleft += obj.offsetLeft;
                curtop += obj.offsetTop;
            }
            while (obj = obj.offsetParent);
        }
	//alert(curleft + " " + curtop);
        return [curleft, curtop];
    },
    /*
    * 
    */
    showTooltip : function (e) 
    {
    	var targ;
		if (!e) {
			var e = window.event;
		}
		if (e.target) { 
			targ = e.target;
		}
		// IE
		else if (e.srcElement) { 
			targ = e.srcElement;
		}
		if (targ.nodeType == 3) { // Safari bug
			targ = targ.parentNode;
		}
    	
        if (document.getElementById("tooltip") != null) 
        {
            document.getElementsByTagName("body")[0].removeChild(document.getElementById("tooltip"));
        }
        var origin = targ;
        var tooltip_base = document.createElement("div");
        tooltip_base.id = "tooltip";
        tooltip_base.className = "tooltip_base";
        var type = "rear";
        if (type == "front" || type == null) 
        {
            tooltip_base.style.top = String(Common.findPos(origin)[1] + 15) + "px";
            tooltip_base.style.left = String(Common.findPos(origin)[0] - 20) + "px";
            var tooltip_spike = document.createElement("img");
            tooltip_spike.src = "../images/tooltip_spike.png";
            tooltip_base.appendChild(tooltip_spike);
        }
        if (type == "rear") 
        {
            tooltip_base.style.top = String(Common.findPos(origin)[1] + 15) + "px";
            tooltip_base.style.left = String(Common.findPos(origin)[0] - 230) + "px";
            var tooltip_spike = document.createElement("img");
            tooltip_spike.src = "../images/tooltip_spike.png";
            tooltip_base.appendChild(tooltip_spike);
        }
        var h_s = origin.parentNode.rel;
        var helpString = document.createTextNode(h_s);
        var par = document.createElement("p");
        par.appendChild(helpString);
        tooltip_base.appendChild(par);
        document.getElementsByTagName("body")[0].appendChild(tooltip_base);
    },
    /*
    * 
    */
    clearTooltip : function (e) 
    {
        if (document.getElementById("tooltip") != null) 
        {
            document.getElementsByTagName("body")[0].removeChild(document.getElementById("tooltip"));
        }
    },
    /*
     * 
     */
    addTooltips : function () {
    	var linksArray = document.images;
    	for(var i = 0; i < linksArray.length; i++) {
    		if(linksArray[i].className == "help_ico") {
    			Common.addEvent(linksArray[i], "mouseover", Common.showTooltip);
    			Common.addEvent(linksArray[i], "mouseout", Common.clearTooltip);
    		}
    	}
    },
    /*
	* mette o toglie i css
	*/
	toggleCSS : function (evt) {
		var linkTags = document.getElementsByTagName("link");
		for(var i = 0; i < linkTags.length; i++) {
			if(linkTags[i].rel = "stylesheet") {
				var hr = linkTags[i].href;
				if(hr.substring(linkTags[i].href.length-1, linkTags[i].href.length) == "_") {
					linkTags[i].href = linkTags[i].href.substring(0, linkTags[i].href.length-1);
					document.getElementById("alt").getElementsByTagName("ul")[0].getElementsByTagName("li")[1].getElementsByTagName("a")[0].innerHTML = "Text Only";
				}
				else {
					linkTags[i].href =  linkTags[i].href + "_";
					document.getElementById("alt").getElementsByTagName("ul")[0].getElementsByTagName("li")[1].getElementsByTagName("a")[0].innerHTML = "Normal Version";
				}
			}
		}
    },
    /*
     * Literals per controllare la gestione dei cookies 
     */
    Cookies : 
    {
        // funzione per creare un cookie
        createCookie : function (name, value, days) 
        {
            if (days) 
            {
                var date = new Date();
                date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
                var expires = "; expires=" + date.toGMTString();
            }
            else {
                var expires = "";
            }
            document.cookie = name + "=" + value + expires + "; path=/";
        },
        // legge un cookie e ne ritorna il valore, altrimenti null se non esiste
        readCookie : function (name) 
        {
            var nameEQ = name + "=";
            var ca = document.cookie.split(';');
            for (var i = 0; i < ca.length; i++) 
            {
                var c = ca[i];
                while (c.charAt(0) == ' ') {
                    c = c.substring(1, c.length);
                }
                if (c.indexOf(nameEQ) == 0) {
                    return c.substring(nameEQ.length, c.length);
                }
            }
            return null;
        },
        // cancella un cookie sovrascrivendolo
        eraseCookie : function (name) 
        {
            createCookie(name, "", - 1);
        }
    }
};
